// import 'package:easy_refresh/easy_refresh.dart';
// import 'package:flutter/material.dart';
// import 'package:get/get.dart';
// import 'package:intl/intl.dart';
// import 'package:scroll_to_index/scroll_to_index.dart';
// import 'package:ball_lion/module/match/list/zq_match_filter_logic.dart';
// import 'package:ball_lion/module/match/list/match_page_logic.dart';
// import 'package:ball_lion/entity/match/zq_list_entity.dart';
// import 'package:ball_lion/server/api/user_api.dart';
// import 'package:ball_lion/utils/constant.dart';
// import 'package:ball_lion/utils/date_utils_extension.dart';
// import 'package:ball_lion/routes/routes.dart';
// import 'package:ball_lion/utils/sp_utils.dart';
// import 'package:ball_lion/utils/user.dart';
//
import 'package:ball_lion/module/match/list/zq_view_logic.dart';
import 'package:ball_lion/utils/user.dart';

class ZqFocusLogic extends ZqViewLogic {
  ZqFocusLogic(super.type, super.tag);
//   final EasyRefreshController refreshController = EasyRefreshController();
//   final filter =
//       Get.find<ZqMatchFilterLogic>(tag: Constant.matchFilterTagFocus);
//   List<ZqListEntity> _originalData = [];
//   List<DateTime>? dayList;
//   List _groupListData = [];
//   bool isBottomHide = false;
  bool visible = false;
  bool checkLogin = false;

//   @override
//   QuickFilter quickFilter = QuickFilter.all;
//   @override
//   bool firstLoad = true;

//   bool get checkLogin => _checkLogin;
//   bool get visible => _visible;
//   List<ZqListEntity> get originalMatch => _originalData;
//   List get groupListData => _groupListData;

//   @override
//   void onInit() {
//     super.onInit();
//   }

//   @override
//   updateView() {
//     update();
//   }

//   @override
//   void onReady() async {
//     super.onReady();
//     getMatch(firstGet: true);
//     if (User.isLogin) {
//       var showFocusTeam = SpUtils.showFocusTeam;
//       if (showFocusTeam != true) {
//         // showFocusTeam = true;
//         SpUtils.showFocusTeam = true;
//         final result = await Get.dialog(CommonDialog.alert(
//           '关注喜欢的球队',
//           content: '已关注球队的近期比赛，会自动添加至关注频道。',
//           confirmText: '去关注',
//           cancelText: '我知道了',
//         ));
//         if (result == true) {
//           Get.toNamed(Routes.selectFocusTeam);
//           // getNew();
//         }
//       }
//     }

//     // User.needLogin(() => getMatch());
//   }

//   @override
//   Future getMatch({bool firstGet = false}) async {
//     if (!User.isLogin) {
//       return;
//     }
//     List<ZqListEntity>? matchList = await UserApi.getZqMatchFocus();
//     firstLoad = false;
//     if (matchList != null) {
//       _originalData = matchList;
//       // final filter = Get.find<SoccerMatchFilterController>(
//       //     tag: Constant.matchFilterTagFocus);
//       filterMatch(filter.getHideLeagueIdList());
//     }
//     // Future.delayed(
//     //     Duration(seconds: 1), Get.find<NavigationController>().stopVGA);
//     update();
//     if (firstGet) {
//       Future.delayed(const Duration(seconds: 1)).then((value) =>
//           autoScrollController.scrollToIndex(getLeastAnchor(),
//               preferPosition: AutoScrollPosition.begin));
//     }
//   }

//   void groupData(List<ZqListEntity> matchList) {
//     List<DateTime> dateListTemp = [];
//     List<List<ZqListEntity>> groupMatchListTemp = [];
//     //同一天比赛
//     List<ZqListEntity> sameDayMatchList = [];
//     for (int i = 0; i < matchList.length; i++) {
//       ZqListEntity match = matchList[i];
//       final dateTime = DateTime.parse(match.matchTime!);
//       if (dateListTemp.isEmpty) {
//         dateListTemp.add(dateTime);
//         sameDayMatchList.add(match);
//       } else if (DateUtils.isSameDay(dateListTemp.last, dateTime)) {
//         sameDayMatchList.add(match);
//       } else {
//         groupMatchListTemp.add(sameDayMatchList);
//         matchList[i - 1].lastMatchInDay = true;
//         dateListTemp.add(dateTime);
//         sameDayMatchList = [match];
//       }
//     }
//     //加上最后一天比赛
//     groupMatchListTemp.add(sameDayMatchList);

//     dayList = dateListTemp;
//     // _groupMatchList = groupMatchListTemp;

//     List groupListDataTemp = [];
//     for (int i = 0; i < dateListTemp.length; i++) {
//       for (var match in groupMatchListTemp[i]) {
//         groupListDataTemp.add({'match': match, 'group': dateListTemp[i]});
//       }
//     }
//     _groupListData = groupListDataTemp;
//     update();
//   }

//   void filterMatch(List<int> hideLeagueId) {
//     List<ZqListEntity> matchList = [];
//     for (var match in _originalData) {
//       if (quickFilter == QuickFilter.qingbao && match.intelligence == 0) {
//         continue;
//       }
//       if (!hideLeagueId.contains(match.leagueId)) {
//         if (filter.leagueType == ZqFilterType.jz && match.jcMatchNo != null) {
//           matchList.add(match);
//         } else if (filter.leagueType == ZqFilterType.dc &&
//             match.dcMatchNo != null) {
//           matchList.add(match);
//         } else if (filter.leagueType == ZqFilterType.ssc &&
//             match.sfcMatchNo != null) {
//           matchList.add(match);
//         } else {
//           matchList.add(match);
//         }
//       }
//     }
//     groupData(matchList);
//   }

//   void onSelectDefaultMatch() {
//     quickFilter = QuickFilter.all;
//     filter.leagueType = ZqFilterType.all;
//     filter.onSelectAll();
//     filter.updateLeague();
//     filterMatch([]);
//   }

//   void onCloseBottomBar() {
//     isBottomHide = true;
//     update();
//   }

//   // String getMatchTypeImage() {
//   //   String matchTypeImage = 'match_all.png';
//   //   if (matchType == 1) {
//   //     matchTypeImage = 'match_yiji.png';
//   //   } else if (matchType == 2) {
//   //     matchTypeImage = 'match_jingzu.png';
//   //   }
//   //   return matchTypeImage;
//   // }

//   //找距离两小时前最近的比赛
//   int getLeastAnchor() {
//     var index = -1;
//     final date = DateTime.now().subtract(Duration(hours: 2));
//     int interval = -1;
//     for (int i = 0; i < originalMatch.length; i++) {
//       ZqListEntity match = originalMatch[i];
//       final matchDate = DateTime.parse(match.matchTime!);
//       if (interval == -1) {
//         interval = date.difference(matchDate).inMinutes.abs();
//       } else if (date.difference(matchDate).inMinutes.abs() < interval) {
//         interval = date.difference(matchDate).inMinutes.abs();
//         index = i;
//       }
//     }
//     // int index = groupListData.lastIndexWhere((element) {
//     //   ZqListEntity match = element['match'];
//     //   return match.anchors == 1;
//     // });
//     return index == -1 ? 0 : index;
//   }

//   @override
//   Future doRefresh() async {
//     refreshController.callRefresh();
//   }

//   @override
//   String getTicketName(ZqListEntity match) {
//     String name = '';
//     if (filter.leagueType == ZqFilterType.jz) {
//       name = match.jcMatchNo ?? '';
//     } else if (filter.leagueType == ZqFilterType.dc) {
//       name = match.dcMatchNo ?? '';
//     } else if (filter.leagueType == ZqFilterType.ssc) {
//       name = match.sfcMatchNo ?? '';
//     } else {
//       name = ((match.jcMatchNo ?? match.dcMatchNo) ?? match.sfcMatchNo) ?? '';
//     }
//     return name;
//   }

  void setVisible(info) {
    visible = info;
    if (visible) {
      getMatch();
    }
    update();
  }

  bool isLogin() {
    if (visible) {
      checkLogin = User.isLogin;
    }
    update();
    return checkLogin;
  }

//   @override
//   onSelectMatchType(QuickFilter index) {
//     // TODO: implement onSelectMatchType
//     throw UnimplementedError();
//   }
//   // @override
//   // bool stopRefresh() {
//   //   var time = refreshController.controlFinishRefresh;
//   //   update();
//   //   return time;
//   // }
// }
}
